package com.wxapp.pay.api.pojo.pojo.vo.pay;

import com.wxapp.pay.api.pojo.enums.listener.PayStatusEnum;
import lombok.Data;

/**
 * @author lgl
 */
@Data
public class QAliPayCallBackVo {
    /**
     * 三方流水号
     */
    private String trade_no;
    /**
     * 订单号
     */
    private String out_trade_no;
    /**
     * 支付宝分配给开发者的应用 ID
     */
    private String app_id;
    /**
     * 订单总金额
     */
    private String total_amount;
    /**
     * 商户实收金额
     */
    private String receipt_amount;
    /**
     * 用户实付金额
     */
    private String buyer_pay_amount;
    /**
     * 支付状态
     */
    private String trade_status;
    /**
     * 买家付款的时间
     */
    private String gmt_payment;
    /**
     * 买家支付宝账号对应的支付宝唯一用户号
     */
    private String buyer_id;
    /**
     * 买家支付宝账号
     */
    private String buyer_logon_id;

    /**
     * 格式化为支付记录信息
     * @return
     */
    public PayStatusEnum getStatus() {
        PayStatusEnum payStatus = PayStatusEnum.PAYING;
        switch (getTrade_status()) {
            case "TRADE_SUCCESS":
            case "TRADE_FINISHED":
                payStatus = PayStatusEnum.SUCCESS;
                break;
            case "TRADE_CLOSED":
                payStatus = PayStatusEnum.FILE;
                break;
            default:
                break;
        }
        return payStatus;
    }
}
